1 Gnus Coding Style
1.1 Dependencies
The Gnus distribution contains a lot of libraries that have
been written for Gnus and used intensively for Gnus. But many of
those libraries are useful on their own. E.g. other Emacs Lisp
packages might use the MIME library See
Top.
1.1.1 General purpose libraries
- netrc.el
- .netrc parsing
functionality.
There are no Gnus dependencies in this file.
- format-spec.el
- Functions for formatting arbitrary formatting strings.
There are no Gnus dependencies in this file.
- hex-util.el
- Functions to encode/decode hexadecimal string.
There are no Gnus dependencies in these files.
1.1.2 Encryption and security
- encrypt.el
- File encryption routines
There are no Gnus dependencies in this file.
- password.el
- Read passwords from user, possibly using a password cache.
There are no Gnus dependencies in this file.
- tls.el
- TLS/SSL support via wrapper around GnuTLS
There are no Gnus dependencies in this file.
- pgg*.el
- Glue for the various PGP implementations.
There are no Gnus dependencies in these files.
- sha1.el
- SHA1 Secure Hash Algorithm.
There are no Gnus dependencies in these files.
1.1.3 Networking
- dig.el
- Domain Name System dig interface.
There are no serious Gnus dependencies in this file. Uses
gnus-run-mode-hooks (a wrapper
function).
- dns.el,
dns-mode.el
- Domain Name Service lookups.
There are no Gnus dependencies in these files.
1.1.4 Mail and News related RFCs
- pop3.el
- Post Office Protocol (RFC 1460) interface.
There are no Gnus dependencies in this file.
- imap.el
- IMAP library.
There are no Gnus dependencies in this file.
- ietf-drums.el
- Functions for parsing RFC822bis headers.
There are no Gnus dependencies in this file.
- rfc1843.el
- HZ (rfc1843) decoding. HZ is a data format for exchanging
files of arbitrarily mixed Chinese and ASCII
characters.
rfc1843-gnus-setup seem to be useful only for
Gnus. Maybe this function should be relocated to remove
dependencies on Gnus. Other minor dependencies:
gnus-newsgroup-name could be eliminated by using
an optional argument to
rfc1843-decode-article-body.
- rfc2045.el
- Functions for decoding rfc2045 headers
There are no Gnus dependencies in these files.
- rfc2047.el
- Functions for encoding and decoding rfc2047 messages
There are no Gnus dependencies in these files. Only a couple
of tests for gnusy symbols.
- rfc2104.el
- RFC2104 Hashed Message Authentication Codes
There are no Gnus dependencies in these files.
- rfc2231.el
- Functions for decoding rfc2231 headers
There are no Gnus dependencies in these files.
- flow-fill.el
- Interpret RFC2646 "flowed" text.
There are no Gnus dependencies in this file.
- uudecode.el
- Elisp native uudecode.
There are no Gnus dependencies in this file.
- canlock.el
- Functions for Cancel-Lock feature
There are no Gnus dependencies in these files.
1.1.5 message
All message composition from Gnus (both mail and news) takes
place in Message mode buffers. Message mode is intended to be a
replacement for Emacs mail mode. There should be no Gnus
dependencies in message.el. Alas it is not anymore. Patches
and suggestions to remove the dependencies are welcome.
1.1.6 Emacs MIME
The files mml*.el and
mm-*.el provide
MIME functionality for Emacs.
MML (MIME Meta Language)
is supposed to be independent from Gnus. Alas it is not anymore.
Patches and suggestions to remove the dependencies are
welcome.
1.1.7 Gnus backends
The files nn*.el
provide functionality for accessing NNTP (nntp.el), IMAP (nnimap.el) and several other Mail back ends
(probably nnml.el,
nnfolder.el and
nnmaildir.el are the most
widely used mail back ends).
1.2 Compatibility
No Gnus and Gnus 5.10.10 and up should work on:
- Emacs 21.1 and up.
- XEmacs 21.4 and up.
Gnus 5.10.8 and below should work on:
- Emacs 20.7 and up.
- XEmacs 21.1 and up.